home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Inside!
/
Amiga FD Inside (1995)(Ultramax).iso
/
forumamiga
/
ausgabe09
/
texte
/
cursor_v1.6
< prev
next >
Wrap
Text File
|
1992-09-15
|
7KB
|
155 lines
B A S I C - E c k e i m F O R U M A M I G A - Teil: 9-I
==========================================================================
C U R S O R V1.6 - oder: Was lange währt, wird endlich gut
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Cursor ist, wie schon in früheren Ausgaben des FAs berichtet wurde (von Meik
Woyke und mir) der ultimative FD-Basic-Compiler, der als Shareware vertrie-
ben wird (20 DM Gebühr).
Seit der letzten von mir beschriebenen Version (V1.3) hat sich wieder einiges
geändert, so werden jetzt fast alle Befehle unterstützt (am Ende dieses Tex-
tes befindet sich die vollständige Liste), die compiliert lauffähig sein kön-
nen (nicht lauffähig sind natürlich LIST, TRON, ...). Das Programm liegt wei-
terhin als Programm mit "eingebautem" Editor als auch als CLI-Befehl vor.
NEUERUNGEN
Es gibt zunächst einige neue Optionen und ein paar Änderungen an den alten.
Als erstes möchte ich darauf eingehen, daß die CLI-Optionsangabe deutlich
gekürzt worden ist, so mußte z.B. früher "Cursor -nowindow test.bas" einge-
geben werden, wo jetzt "Cursor -w0 test.bas" eingegeben werden muß.
Die - wie ich meine - wichtigste Neuerung ist die neue Option "STANDALONE"
(im CLI: -s), wodurch die "basic.library" nicht mehr gebraucht wird, wenn
das compilierte Programm abläuft, sondern im Programm eingebunden wird. Das
vergrößert zwar das Programm, hat aber den Vorteil, daß immer die richtige
Version der "basic.library" benutzt wird und man nicht immer die "basic.-
library" im LIBS:-Verzeichnis haben muß.
Eine weitere Neuerung ist die Option "LISTING" (im CLI: -l). Hier wird eine
Liste der im Programm verwendeten Variablen ausgegeben, wobei auch angegeben
wird, in welchem Unterprogramm die Variablen verwendet werden sowie die Zei-
len. Die Liste wird in eine wählbare Datei geschrieben. Diese Option kann si-
cherlich enorm hilfreich in der Sourcecode-Optimierung sein.
Schließlich gibt es noch eine wichtige Neuerung bei den Befehlen: Wird eine
LIBRARY-Funktion benutzt, wird die ".bmap" nur noch während der Übersetzung
benötigt, und nicht mehr beim übersetzten Programm.
UNTERSTÜTZTE BEFEHLE UND FUNKTIONEN
Allgemein gesagt, funktionieren alle kompilierbaren Befehle und Funktionen,
ausgenommen der Objekt- (OBJECT, COLISSION, ...), Joystick- und Musik-Funk-
tionen sowie ein paar sonstigen unwichtigen.
Ok, hier die Liste. Falls nicht anders angegeben, funktionieren die Befehle
(fast) genauso wie im Interpreter.
ABS() AREA (20 verschiedene Punkte können gesetzt werden)
AREAFILL ASC() ATN()
BEEP (Bildschirm blinkt nur auf, kein Ton) BREAK
CALL CDBL() CHDIR CHR$()
CINT()
CLEAR (eigentlich unnötig, da Cursor sowieso immer den größten nötigen Wert
nimmt)
CLNG() CLOSE CLS COLOR
COS() CSNG() CSRLIN CVI()
CVL() CVS() CVD() DATA
DATE$ DECLARE FUNCTION DEF FN DEFINT
DEFLNG DEFSNG DEFDBL DEFSTR
DIM END END SUB (s. "SUB") EOF()
ERASE ERL ERR ERROR
EXIT SUB (s. "SUB") EXP() FIELD FILES
FIX() FOR
FRE()
(FRE(-3) Gibt AvailMem(MEMF_LARGEST) zurück, wie es auch AmigaBASIC tut.
FRE(0) Erzwingt eine Garbage-Collection (Aufräumen des Speichers für
Strings) und gibt die Größe des noch freien Stringspeichers zu-
rück)
GET GOSUB GOTO HEX$()
IF INKEY$ INPUT INPUT$()
INPUT # INSTR INT() KILL
LEFT$() LEN() LET
LIBRARY (die ".bmap"-Dateien werden nur während der Übersetzung benötigt)
LINE LINE INPUT LINE INPUT # LOC()
LOCATE LOF() LOG() LPOS()
LPRINT LPRINT USING LSET MENU
MENU() MID$() MKI$() MKL$()
MKS$() MKD$() MOUSE() MOUSE
NAME NEXT OCT$() ON BREAK GOSUB
ON ERROR GOTO ON MENU GOSUB ON MOUSE GOSUB
ON TIMER ... GOSUB ON ... GOSUB ON ... GOTO OPEN
PAINT PALETTE PATTERN PEEK
PEEKL PEEKW POINT POKE
POKEL POKEW POS() PRESET
PRINT (oder ?) PRINT USING PRINT # PRINT USING #
PSET PTAB PUT RANDOMIZE
READ REM RESTORE RESUME
RETURN RIGHT$() RND() RSET
SADD() SAY SCREEN SCREEN CLOSE
SCROLL SGN() SHARED SIN()
SLEEP SPACE$() SQR() STR$()
STRING$()
SUB
(Parameter werden nicht wie (wie der Autor glaubt) bei AmigaBASIC mit Zei-
gern (call by reference) übergeben, sondern es werden die Werte übergeben
(call by value).
Anders als bei AmigaBASIC sind Rekursionen erlaubt, Werte lokaler Variab-
len bleiben nach dem Verlassen eines Unterprogramms allerdings nicht er-
halten.)
SWAP SYSTEM TAN() TIME$
TIMER TIMER() TRANSLATE$() UCASE$
VAL VARPTR WEND WHILE
WINDOW WINDOW CLOSE WINDOW OUTPUT WINDOW()
WRITE WRITE # °
außerdem möglich sind:
=, <, >, <=, >=, <>, MOD, *, /, ^, +, -, \, NOT, AND, OR, XOR, EQV, IMP
(NOCH) NICHT UNTERSTÜTZTE BEFEHLE UND FUNKTIONEN:
Diese Befehle sind in dieser Version noch nicht integriert, könnten aber in
einer späteren Version evtl. integriert werden. Die Befehle, deren Integra-
tion ich für unmöglich/schwachsinnig halte sind in spitzen Klammern.
CIRCLE COLLISION COLLISION() LBOUND LIST (Nicht möglich)
OBJECT... ON COLLISION GOSUB OPTION BASE RUN
SOUND SPC() STICK <STOP>
STRIG() TAB() <TRON> <TROFF>
UBOUND WAVE WIDTH
NICHT INTEGRIERBARE BEFEHLE UND FUNKTIONEN:
Diese Befehle können nicht integriert werden, weil sie nur im Basic-Interpre-
ter sinnvoll sind.
CHAIN COMMON CONT DELETE
LIST LLIST LOAD MERGE
NEW SAVE
So, ich glaube nun kann sich jeder sein eigenes Bild über den neuen "Cursor"
machen - ich möchte aber abschließend noch meine eigene Wertung loswerden:
WERTUNG/ÜBERSICHT
Leistung (50 %): 1-
Bedienung (30 %): 1
Eindruck (20 %): 1-
Gesamt (100 %): 1-
FD-Art: Shareware, 20 DM
Autor: Jürgen Forster
zu finden auf: GPD-Disk 39
Natürlich ist diese Diskette über mich beziehbar (Preise s. die GPD-Anzeige)